#pragma once
#include <cmath>

struct PipeParameters {
    double length;              // 管道长度(m)
    double diameter;            // 管道直径(m)
    double wallThickness;       // 管壁厚度(m)
    double roughness;           // 管道粗糙度(m)
    double heatTransferCoef;    // 传热系数(W/m2·K)
    double massFlowRate;        // 质量流量(kg/s)
    double startElevation;      // 起点高程(m)
    double endElevation;        // 终点高程(m)
    
    // 压力和温度参数
    double outletPressure;      // 出口压力(Pa)
    double inletPressure = 1.0e6;    // 入口压力(Pa)
    double inletTemp = 300.0;        // 入口温度(K)
    double ambientTemp = 290.0;      // 环境温度(K)
    double inletTemperature;    // 入口温度(K)
    double maxTemperature = 400.0;   // 最高允许温度(K)
    
    // 流动参数
    double inletGasVelocity = 10.0;  // 入口气相速度(m/s)
    double inletLiquidVelocity = 2.0;// 入口液相速度(m/s)
    double inclination;         // 管道倾角(rad)
    double superficialLiquidVelocity; // 表观液相速度(m/s)
    double inletGasVolumeFraction = 0.3; // 入口气相体积分数
    
    // 添加时间步长参数
    double maxTimeStep;        // 最大模拟时间步长(s)
    double minTimeStep;        // 最小模拟时间步长(s)
    double simulationTime;     // 模拟时间(s)
    
    double area;            // 管道横截面积 (m2)
    
    PipeParameters() : diameter(0.1) {  // 设置一个默认直径
        area = M_PI * diameter * diameter / 4.0;  // 自动计算横截面积
    }
}; 